export const RegConfig = {
    mobile: /^1[0123456789]\d{9}$/, // 手机号码正则校验
    mobile2: /^(\d{11}$)|(^0{1}$)/, // 手机号码正则校验
    agNum: /^\d{6}\-\d{6}$/, // ag工号校验
    ctiNum: /^\d{7}\-\d{7}$/, // cti工号校验
    email: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/, // 邮箱格式校验
    kunlunCardNo: /^[0-9]{18,21}$/, // 昆仑银行卡号校验(18-21位纯数字)
    hsbankCardNo: /^[0-9]{16,21}$/,// 徽商银行 卡号校验（16-21位）
    cardNo: /^[0-9]{13,22}$/, // 银行卡号校验(13-22位纯数字)
    certificateNo: /^[A-Za-z0-9]+$/, // 证书编号(数字 + 字母)
    amount: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, // 金额输入正则校验 (数字或者数字加小数点，有小数点 后面必须有数字，小数位1-2)
    integerAmount: /(^[1-9]([0-9]+)?$)|(^(0){1}$)/, // 整数金额 -> 不限位数，也可用于正整数金额输入 (首位输入不能为0)

    // 验证 MMYY格式的日期输入
    // OUTEXP_MMYY: (rule:any, value:any, callback:any) => {
    //     if (!(/^[0-9]{4}$/).test(value)) {
    //         callback(new Error("请输入格式为(MMYY)四位数字日期！"));
    //     } else {
    //         callback();
    //     }
    // },

    // 金额特殊验证  
    // 金额只能是整百的
    // AMT_100: (rule:any, value:any, callback:any) => {
    //     if (parseInt(value, 10) % 100 != 0) {
    //         callback(new Error("输入金额只能是整百的！"));
    //     } else {
    //         callback();
    //     }
    // },

    // 金额只能是整百的
    // AMT_nubr: (rule:any, value:any, callback:any) => {
    //     if (parseFloat(value) != value * 1) {
    //         callback(new Error("请输入数字！"));
    //     } else {
    //         callback();
    //     }
    // },

    // 金额大于200_50000
    // AMT_200_50000: (rule:any, value:any, callback:any) => {
    //     if (value < 200 || value > 50000) {
    //         callback(new Error("输入金额应该在200-50000！"));
    //     } else {
    //         callback();
    //     }
    // },

    // 金额大于200
    // AMT_200: (rule:any, value:any, callback:any) => {
    //     if (value < 200) {
    //         callback(new Error("请输入大于等于200的分期金额"));
    //     } else {
    //         callback();
    //     }
    // },
    // 身份证 校验
    validateIdCard: (rule: any, idcard: any, callback: any) => {
        //let idcard=document.forms[0].elements[idcard1].value;
        let Errors = new Array(
            "验证通过!",
            "身份证号码位数不对!",
            "身份证号码出生日期超出范围或含有非法字符!",
            "身份证号码校验错误!",
            "身份证地区非法!"
        );
        let area: any = {},
            ereg,
            ereg2;
        area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }

        //let idcard,Y,JYM;
        let Y, JYM;
        let S, M;
        let idcard_array = new Array();
        idcard_array = idcard.split("");
        /*地区检验*/
        if (area[parseInt(idcard.substr(0, 2))] == null) {
            callback(new Error(Errors[4]));
        }
        /*身份号码位数及格式检验*/
        if (idcard.length == 15) {
            if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
            } else {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
            }
            if (!ereg.test(idcard)) {
                callback(new Error(Errors[2]));
            } else {
                callback();
            }
        } else if (idcard.length == 18) {

            //18位身份号码检测
            //出生日期的合法性检查 
            //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
            //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
            if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
                //added by tlj 20110715, 需要考虑到2000年后出生的情况
                ereg2 = /^[1-9][0-9]{5}20[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
            } else {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
                //added by tlj 20110715, 需要考虑到2000年后出生的情况
                ereg2 = /^[1-9][0-9]{5}20[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
            }
            if (ereg.test(idcard) || ereg2.test(idcard)) {//测试出生日期的合法性
                //计算校验位
                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
                    + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
                    + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
                    + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
                    + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
                    + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
                    + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
                    + parseInt(idcard_array[7]) * 1
                    + parseInt(idcard_array[8]) * 6
                    + parseInt(idcard_array[9]) * 3;
                Y = S % 11;
                M = "F";
                JYM = "10X98765432";
                M = JYM.substr(Y, 1);/*判断校验位*/
                if (!(M == idcard_array[17])) {
                    callback(new Error(Errors[3]));
                } else {
                    callback();
                }
            }
            else {
                callback(new Error(Errors[2]));
            }
        } else {
            callback(new Error(Errors[1]));
        }
    }
}
